This invention concerns system-on-chip (SoC) designs. A SoC includes all or substantially all of the electronics of a useful consumer product in a single integrated circuit. Advances in microelectronics enables integration of all electronic components of a system on a single integrated circuit or chip. A SoC generally includes a variety of circuits types such as: a microprocessor based central processing unit (CPU) including a direct memory access (DMA) unit for control of data movement without direct CPU intervention; various peripheral interfaces such as for input devices and output devices; and co-processors designed for specific data processing tasks that cannot be handled by the CPU. The SoC may include memory such as cache memory for the CPU, data buffers within various circuits and non-volatile memory such as read only memory (ROM) or erasable programmable read only memory (EPROM) for program storage for product definition. A SoC may also include larger system memory such as dynamic random access memory (DRAM) or rely upon an external commodity memory integrated circuit.
Due to the variety of circuits required, current SoC designs are often assembled from circuit modules produced by different design teams. Often design of circuit modules is a specialized task and so expertise in one design of one circuit module does not transfer to another circuit module. Even if all the circuit modules are designed by the same design team, often efficiency concerns require that a previously designed circuit module be used as a whole in a new SoC rather than producing a new module design. The task of the SoC design team is primarily in integrating existing circuit modules into the whole. This process is similar to the task of assembling a multi-integrated system from multiple integrated circuits with some important differences.
This design dynamic has given rise to independent module design companies. These companies sole output is called intellectual property (IP) which are circuit module designs. A semiconductor manufacturer purchases this IP for integration into its SoC products. This IP often involves peripherals that cater to a particular application domain such as audio, video, PCI, I2C, etc. These peripherals interact both with the external world and the DMA system to transfer data between them without intervention from the CPU. These IP modules are often delivered to the SoC manufacturer as completed layout designs without the SoC manufacturer having any capability of altering the IP module.
Quite often IP modules are designed, verified and stressed in an environment that does not truly model all the different system environments both on-chip and off-chip that the IP module will encounter in actual use. An unforeseen stressful real-time scenario can therefore cause the IP module to enter into an erroneous or a fatal state. Generally when this happens to one IP module, the entire system must reset to get around such an issue. A better way to handle this problem would be to use system software to hard reset only the IP module encountering an erroneous condition. This technique is herein referred as soft-reset. Implementing a run-time soft-reset mechanism in a shared and distributed DMA system poses a lot of challenges. On-going transactions might stall because the resetting IP module fails to respond. This, in turn, could lead to a system hang. In addition it is necessary to ensure that the IP module does not encounter any stale transactions once it comes out of soft-reset.